/*
 * Sauvegarde.java
 * Gere la sauvegarde de l'etat du plateau
 */

package Risk.IHM;

import Risk.Moteur.Jeu;

import java.io.File;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 * Sauvegarde de la partie
 * @author Sebastien Depoix
 */
public class Sauvegarde {
    /**
     * Constructeur qui prend en parametre le Jeu virtuel a sauvegarder
     * @param _risk Le jeu virtuel a sauvegarder
     */
    public Sauvegarde(Jeu _risk) {

	System.out.println("Sauvegarde");

	/** 
         * @author Nicoleta -> File chooser
         * 
         */ 
	JFileChooser		jfc    = new JFileChooser("./Sauvegardes");
	File			file   = null;
	String			nomDir = "";
        //filtre sur l'extension des fichiers
	FileNameExtensionFilter	filter = new FileNameExtensionFilter("Fichiers de sauvegarde (.sav)", "sav");

	jfc.setFileFilter(filter);
	jfc.setDialogType(JFileChooser.OPEN_DIALOG);

	// fenetre mere
	int	returnVal = jfc.showSaveDialog(MenuConnexion.menuConnect);

	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    file   = jfc.getSelectedFile();
	    nomDir = jfc.getCurrentDirectory().toString();

	    try {

		// le fichier de sauvegarde "jeu.sav"
		FileOutputStream	fichier = new FileOutputStream(nomDir + File.separator + file.getName()
						      + ".sav");
		ObjectOutputStream	oos     = new ObjectOutputStream(fichier);

		System.out.println("Sauvegarde en cours");
		oos.writeObject(_risk);
		oos.flush();
		oos.close();
		System.out.println("Sauvegarde reussie");
	    } catch (java.io.IOException e) {
		e.printStackTrace();
	    }
	} else {}
    }
}
